Protocol for clock distribution and loop resolution

ABSTRACT

In response to a network topology change, a clock root node calculates a new clock path for each affected node by building a clock source topology tree, and identifying from that tree a path to the network node from a clock source of higher or equal stratum relative to that network node. The root node then sends a network message to each node indicating the new path that the node should use. Each node receives the message and compares the new path with the existing path. If the paths are different then the node acquires the new path just received in the message. If the paths are the same then the node does nothing and discards the message.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.13/362,319 filed Jan. 31, 2012, which is a continuation of U.S. patentapplication Ser. No. 11/609,966 filed Dec. 13, 2006, both of which arehereby incorporated herein by reference.

FIELD OF THE INVENTION

This invention relates generally to the field of network communications,and more particularly to clock distribution and loop resolution.

BACKGROUND OF THE INVENTION

Timing loops are known to present a problem for distribution of timingsignals in a communications network. In SONET/SDH networks, for example,network elements (“NEs”) may each derive their timing from another NE.If the chain of timing derivation forms a loop which is isolated from anexternal reference timing source, this is a timing loop. In general, aSONET Network that has been properly configured will not suffer from atiming loop problem. However, it is sometimes difficult to avoid timingloops without sophisticated network management tools.

Although conceptually simple, timing loops tend to be insidious problemsin the real world. Timing loops preclude the affected NEs from beingsynchronized to the primary reference clock (“PRC”) and cause mysteriousbit errors which are difficult to analyze and correct. The clockfrequencies are traceable to an unpredictable unknown quantity, i.e.,the hold-in frequency limit of one of the affected NE clocks. By design,this is bound to be well outside the expected accuracy of the clockafter several days in holdover, so performance is almost certain tobecome severely degraded.

The importance of proper timing distribution and synchronization in anetwork is illustrated in the following situation. If two pieces ofequipment that are synchronized to different clock sources are joined bya trunk, input buffers on the interfaces at each node periodicallyoverflow at one end or underflow at the other end. This overflow orunderflow condition is commonly known as a frame slip because anoverflow condition usually causes one or more frames of data to bediscarded. Clocking problems typically cause frame slips on circuit-lineinterfaces, especially circuit lines to TDM devices such as a PBX. Frameslips can occur on either or both ends of the line. In a TDM-basednetwork, almost every frame slip causes data to be lost since there islikely to be data contained in at least one timeslot of every frame.

Isolating the cause of a timing loop condition is difficult for at leasttwo reasons. One reason is that the cause is unintentional, e.g., a lackof diligence in analyzing all fault conditions, or an error inprovisioning. The second reason is that there are no sync-specificalarms associated with timing loops since each affected NE accepts thesituation as normal. Consequently, the network administrator must carryout trouble isolation, relying on a knowledge of the sync distributiontopology and on an analysis of data on slip counts and pointer counts.

SUMMARY OF THE INVENTION

In accordance with one embodiment of the invention, in a network inwhich information about nodal adjacency and nodal clock quality levelare available, a method for configuring and maintaining network clockdistribution infrastructure comprises the steps of: selecting, fromamong a plurality of candidate Primary Reference Clocks (PRCs), a rootnode; detecting, by the root node, a network topology change;calculating a new clock distribution path for a node affected by thenetwork topology change; and signaling, by the root node to the affectednode, an indication of the new clock distribution path.

The method may be executed by constructing a clock distribution tree(“CDT”) starting from a clock root node which interfaces to a primaryreference clock, e.g., a Stratum 1 clock. A CDT protocol reconfiguresthe tree in response to detection of a topology change including networknode failure, link failure, and nodes addition and removal. The protocolalso recognizes multi-link trunks between network nodes and ensures thatonly one link in the trunk at any one time is used for timingdistribution, if needed. As will be apparent from the detaileddescription below, the protocol can be applied to networks thatdistribute timing at Layer 1, i.e., Physical Layer, or higher layers ofthe Open System Interconnect (“OSI”) model.

One advantage of the protocol is that it allows for temporarilyunavailable clock sources to be automatically reinstated for clocksynchronization. When a failure causes a topology change, the root nodeupdates clock distribution paths, which can result in a change in clocksource. When the failure is repaired, and the original clock source isagain available, the root node updates clock distribution paths in orderto utilize the original clock source.

Another advantage of the invention is that a node is able to indirectlysynchronize to a remote high quality clock source. For instance, inLayer 1 timing distribution, each element (node or link) in the path issynchronized to the previous element “upstream” in the path. Thus, anode is frequency-locked to the upstream link, which is thenfrequency-locked to the upstream node, which is then frequency-locked tothe next upstream link, and so on. This continues until the definedhighest quality clock source (e.g., the root node) is reached.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an original network topology with reference to whichthe protocol is described.

FIGS. 2 through 5 illustrate use of a matrix which represents the10-node network of FIG. 1 to produce the clock distribution tree of FIG.6.

FIGS. 7 through 10 illustrate adaptation to node addition.

FIG. 11 illustrates the tree structure resulting from the addition of anew node relative to FIG. 10.

FIG. 12 illustrates CDT creation.

FIG. 13 illustrates adaptation to a link failure.

FIG. 14 illustrates adaptation to a node failure.

FIG. 15 illustrates adaptation to addition of a new link.

FIG. 16 illustrates adaptation to addition of a new node.

DETAILED DESCRIPTION

Referring to FIGS. 1 and 2, an algorithm and data structure will bedescribed for constructing and maintaining a clock distribution tree(“CDT”) which allows each node in the network to synchronize to thehighest quality, closest stratum clock source available. The CDTprotocol accommodates the changes in network topology, e.g., addition ordeletion of a network clock source by the network administrator,link/trunk/connection failure or repair, and clock source failure orrepair. Although a mesh network architecture will be used in theillustrated example, the network could be configured in a ringarchitecture. The general architecture of a tree, in terms ofcommunications networks, is well understood in the art and has no loops.

At least one clock root node (1) is selected for the network. The clockroot node (1) is operative to select a reference clock source for eachother node in the network. If there are multiple clock root nodes, eachclock root node is associated with a unique set of nodes, i.e., a nodeis not simultaneously supported by multiple root nodes. For a givennode, the clock root node identifies the path to a higher or equalstratum clock source relative to that node. Within the constraints ofequal or higher stratum, the clock source may also be selected based onproximity (shortest hop) and highest-available quality stratum clocksource relative to that node. The clock root node also instructs othernodes to perform any needed switching of clock source references inresponse to network changes such as those listed above. Where there aremultiple root nodes, the network administrator can define each clockroot node source as primary, secondary, or tertiary clock source. Thedesignation of a clock source as primary, secondary, or tertiary is atthe discretion of the network administrator, however, the best availableclock sources in terms of quality should typically be defined asprimary, with other clock sources defined as secondary or tertiary. Itshould be appreciated that it may sometimes be unavoidable to havemultiple root clocks in a network, e.g., a GPS and a clock sourceprovided by a national or international carrier. In some cases, it isunavoidable for certain nodes and trunks in a network to synchronize toone clock source and to synchronize other nodes and trunks in thenetwork to another clock source. This is especially common ininternational networks or in networks in which trunks are obtained froma variety of service providers. Such a network is synchronized in aplesiochronous fashion.

In order to execute the CDT protocol for the illustrated 10-nodenetwork, an empty 10×10 matrix is generated by the clock root node asillustrated in FIG. 2. The matrix is initialized with nodal indicessorted in non-descending order based on node stratum hierarchy property.Node adjacency information is then entered based on connectivity, wherem_(ij)=1 means that node_(i) is connected to node_(j) and m_(ij)=0 meansthat node_(i) and node_(j) are not connected. Although a multi-linktrunk between two nodes can easily be accommodated as described later,only single connectivity is used here for ease of illustration. Inaddition, without loss of generality, the illustrative example onlyconsiders network with only one node with stratum 1 clock. As will beevident later, a loss of a node with stratum 1 clock is easily replacedby an insertion of a new node with stratum 1 clock. The shaded areadenotes the connectivity violating stratum hierarchy constraints. Anassumption is made that the “row nodes” node_(i) are “sources” and“column nodes” node_(j) are “sinks”. A stratum violation occurs if thestratum level (number) of node_(i) (source) is greater than the stratumlevel of node_(j) (sink). As specifically illustrated in FIG. 3, forexample, a node with a Stratum 3 clock must not be a clock source for anode with a Stratum 2 clock. The next step is to remove the connectivityviolating stratum hierarchy constraint to produce a “source eligibilitymatrix.” There should be at least one “1” for each column (sink).Otherwise, there is no source clock for the destination node located atthe empty column. Referring to FIG. 4, the shaded area indicatespresence and absence of alternate clock source satisfying stratumhierarchy constraint. Referring to FIG. 5, for each destination nodedown along each column except column 1 which stores the root node, thefirst node on the row containing a “1” is selected as the clock source.The resulting CDT is shown in 6.

The clock root node may utilize a clock distribution topology creatingmatrix algorithm to create the clock distribution topology. An exemplaryalgorithm takes as input a “network connectivity matrix” with nodeindices sorted in non-descending order based on the stratum level andoutputs “clock distribution topology matrix” and “clock connectioneligibility matrix.” In particular, the input is a clock networktopology given by an N×N matrix, where N is the number of nodes in thenetwork and an entry:

$a_{ij} = \left\{ {\begin{matrix}{1,} & {{if}\mspace{14mu} {node}_{i}\mspace{14mu} {is}\mspace{14mu} {adjacent}\mspace{14mu} {to}\mspace{14mu} {node}_{j}} \\{0,} & {{if}\mspace{14mu} {node}_{i}\mspace{14mu} {is}\mspace{14mu} {not}\mspace{14mu} {adjacent}\mspace{14mu} {to}\mspace{14mu} {node}_{j}}\end{matrix},} \right.$

where Clock_level(node_(i)): is the clock stratum level of node_(i). Anassumption is made that Clock_level(node_(i))≦Clock_level(node_(j)) fori<j. The resulting output includes a clock distribution topology matrixand an eligibility matrix. In particular, the clock distributiontopology matrix is an N×N matrix, where an entry

$c_{ij} = \left\{ {\begin{matrix}{1,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {the}\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}} \\{0,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {not}\mspace{14mu} a\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}}\end{matrix},{{{and}{\sum\limits_{i}^{\;}\; c_{ij}}} = {{{1\mspace{14mu} {for}\mspace{14mu} 1} < j \leq {N{and}{\sum\limits_{i,j}^{\;}\; c_{ij}}}} = {N - 1.}}}} \right.$

Further, the eligibility matrix describes the connectivity choicessatisfying clock stratum level constraints. The next step is toinitialize the eligibility matrix and the clock matrix with theadjacency matrix as follows: e_(ij)=c_(ij)=a_(ij), for 1≦i≦N, 1≦j≦N.Next, the eligibility matrix is determined in view of the adjacencymatrix as follows: for each column, 1≦j≦N set e_(ij)=c_(ij)=0, forj+1≦i≦N if clock_level(node_(j))<clock_level(node_(i)). The next step isto determine the clock distribution topology matrix, given theeligibility matrix: for the first column j=1, set c_(ij)=0, for j+1≦i≦N.Then, for each column 1<j≦N, the minimum i is found such that c_(kj)=0,for 1≦k≦i−1 and c_(ij)=1 and set c_(kj)=0, for i+1≦k≦N. Finally, theeligibility matrix is updated in accordance withe_(ij)=max(0,e_(ij)−c_(ij)), for 1≦i≦N, 1≦j≦N.

The clock root node may also utilize a clock distribution topologycreating matrix algorithm to recover from failure. An exemplaryalgorithm takes as input a “clock distribution topology matrix” andeither a node or link failure, and outputs a recovered “clockdistribution topology matrix.” In particular, the input includes a clocknetwork topology given by an N×N matrix, where an entry

$c_{ij} = \left\{ {\begin{matrix}{1,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {the}\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}} \\{0,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {not}\mspace{14mu} a\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}}\end{matrix},{{{{and}{\sum\limits_{i}^{\;}\; c_{ij}}} = {{{1\mspace{14mu} {for}\mspace{14mu} 1} < j \leq {N{and}{\sum\limits_{i,j}^{\;}\; c_{ij}}}} = {N - 1}}};}} \right.$

and clock connection eligibility matrix satisfying clock stratum levelconstraints; and node_(k) fails or link between node_(k) and node_(m)fails. An assumption is made thatClock_level(node_(i))≦Clock_level(node_(j)) for i<j. The output includesa clock network topology given by an N′×N′ matrix, where an entry

$c_{ij} = \left\{ {\begin{matrix}{1,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {the}\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}} \\{0,} & {{if}\mspace{14mu} {node}_{i}\mspace{11mu} {is}\mspace{14mu} {not}\mspace{14mu} a\mspace{14mu} {clock}\mspace{14mu} {source}\mspace{14mu} {for}\mspace{14mu} {node}_{j}}\end{matrix},{{{and}{\sum\limits_{i}^{\;}\; c_{ij}}} = {{{1\mspace{14mu} {for}\mspace{14mu} 1} < j \leq {N^{\prime}{and}{\sum\limits_{i,j}^{\;}\; c_{ij}}}} = {N^{\prime} - 1}}},} \right.$

where N′=N, if it is a single link failure and N′=N−1, if it is a singlenode failure, assuming a solution exists.However, a link failure is treated differently than a node failure. Inparticular, in the case of link failure then: (a) assume k<m and setc_(km)=0; (b) find e_(im)=1, for k+1≦i≦N in the eligibility matrix; (c)if such i found, set c_(im)=1 in the clock distribution topology matrixand set e_(im)=0; (d) else no solution found!; and (e) exit algorithm.Alternatively, if node failure then: (a) clear the link from node_(k) toall node_(m) in eligibility matrix and clock distribution topologymatrix; (b) if node_(k) is an internal node, clear all the links tonode_(k) in eligibility matrix and clock distribution topology matrix;and (c) for each node_(m) previously connected to node_(k) in the clockdistribution topology matrix, and (i) find minimum i such that e_(km)=0,for 1≦k≦i−1 and e_(im)=1 and set c_(im)=1; and (ii) update eligibilitymatrix e_(ij)=max(0,e_(ij)−c_(ij)), for 1≦i≦N′,1≦j≦N′.

FIGS. 7 through 10 illustrate adaptation to node addition. In thespecifically illustrated example, node (4.5) is added to the topology ofFIG. 6 (See FIG. 10). FIG. 7 illustrates the “old clock eligibilitymatrix,” and FIG. 8 illustrates the “new clock eligibility matrix.” FIG.9 illustrates the “new clock distribution topology matrix.” Theresulting CDT from the addition of the new node addition is illustratedin FIG. 10, and FIG. 11 depicts the tree structure.

Operation of the CDT protocol will be more generally described withreference to the flowcharts of FIGS. 12 through 16. FIG. 12 specificallyillustrates CDT creation. As shown in step (1200), network topology withnodal clock properties are input. A connectivity matrix (“CM”) isgenerated based on network topology, as shown by step (1202). In step(1204) the protocol forms a clock-level based, sorted connectivitymatrix (“CSCM”) by arranging rows and columns of CM according to nodalclock stratum level properties. A clock source eligibility matrix(“CSEM”) is formed by removing elements of the CSCM that violate clockhierarchy constraints, as shown by step (1206). A clock distributiontopology matrix (“CDTM”) is then formed by keeping one element percolumn of the CSEM with value >0, except for the first column, as shownin step (1208). The clock distribution topology is then output based onCDTM, where the root node is the one corresponding to the first row andcolumn, as shown by step (1210). The CSEM is then updated by setting thevalue of its elements to 0 for the corresponding elements used by theCDTM, as shown by step (1212).

FIG. 13 illustrates adaptation to a link failure. As shown in step(1300), the failed link identified by the source-destination node pair,CDTM, and CSEM are input. Flow then diverges depending on whether theCDTM element corresponding to the source-destination node pair isgreater than 1, as determined in step (1302). If the result of step(1302) is a “yes” determination then the CDTM element is decremented byone, as shown in step (1304). The next step (1306) is to output theclock distribution policy based on CDTM where the root node is the onecorresponding to the first row and column. If the result of step (1302)is a “no” determination then the next step (1308) is to find a non-zeroelement in the CSEM at the column corresponding to the destination node.If such an element cannot be found, an error message is produced asshown by step (1310). Provided the element is found, the next step(1312) is to delete the element from CSEM and transfer it to thecorresponding position in the CDTM. Flow then moves from step (1312) tostep (1306), described above.

FIG. 14 illustrates adaptation to a node failure. The input, as shown bystep (1400) is the failed node, CDTM and CSEM. In step (1402) the clockroot node obtains, from the failed node row in the CDTM, the set ofchild nodes and from the failed node column its parent node. The nextstep (1404) is to clear all those elements in the CDTM and clear allelements in the row and column of the CSEM corresponding to the failednode. Then, as shown in step (1406), for each unvisited child node, finda non-zero value element in the CSEM at the column corresponding to thechild node index. If the element is found, as determined in step (1408),then the element is deleted from the CSEM and transferred to thecorresponding position in the CDTM as shown in step (1410). If theelement is not found, an error message is generated as shown in step(1412). If not all child nodes have been visited, as determined at step(1414), then flow returns to step (1406). Otherwise, the clockdistribution topology based on the CDTM is output as shown in step(1416).

FIG. 15 illustrates adaptation to addition of a new link. The input, asshown by step (1500) is the link identified by the source-destinationpair, CDTM and CSEM. If the CDTM element corresponding to thesource-destination node pair is greater than zero, as determined in step(1502), then the CDTM element is incremented by the link factor as shownin step (1504). The clock distribution topology is then output based onCDTM, where the root node is the one indexing first row and column, asshown by step (1506). If the CDTM element corresponding to thesource-destination node pair is not greater than zero, as determined instep (1502), then the element in the CSEM is incremented by the linkfactor as shown by step (1508).

FIG. 16 illustrates adaptation to addition of a new node. As shown bystep (1600), the input is the new node, its links to existing nodes,CDTM, and CSEM. The next step (1602) is to classify the links intosourcing set, where the new node is a clock source with a stratum clocklevel of lower than or equal to those at the other ends of the links anddestined set, where the new node is the receiver of the clock sources atthe other end of the links. The next step (1604) is to create a row andcolumn position in both the CSEM and the CDTM based on the stratum clocklevel of the new node. Then, as shown in step (1606), along the new rowin the CSEM, the element along the column in the sourcing set isupdated. Also, along the new column in the CSEM, the element along therow indicated in the destined set is updated. The next step (1608) is tofind a non-zero value element in the CSEM at the column corresponding tothe new node. If the element can be found, then the next step (1610) isto delete the element from the CSEM and transfer it to the correspondingposition in the CDTM. If the element cannot be found, then the next step(1612) is to generate an error message. In either case, i.e., via eitherstep (1610) or step (1612), flow continues to step (1614) where theclock distribution topology based on the CDTM is output.

The flowcharts in FIGS. 12 through 16 describe the CDT algorithm when anetwork has only one root clock node. However, the algorithms can beextended for network scenarios with multiple clock sources. Designationof the clock type depends on the stratum (or stability) of the clocksource. In a large network, for example, all stratum 2 clocks could bedesignated as “primary,” all stratum 3 clocks as “secondary,” and allstratum 4 clocks as “tertiary.” The network regards all primary clocksas equal in the network clocking hierarchy, regards all secondary clocksas equal, and regards all tertiary clocks as equal.

In an alternative embodiment the CDT protocol is extended such that eachnode synchronizes to the highest quality stratum clock source that isavailable. If multiple, equal clock sources are available, the nodesynchronizes to the source that is physically the closest. If none ofthe sources is available, the network synchronizes to the internaloscillator of one of the nodes in the network.

In another embodiment the CDT is extended such that each node uses thenearest, highest-priority (primary, secondary, tertiary, or internal)clock source available to it. If there is only one primary clock sourcedefined in the network, then all nodes synchronize to it, if possible.Otherwise, various actions may be specified. For example, if there ismore than one primary clock source defined in the network, then eachnode synchronizes to the nearest (measured by hop count) primary source.If there are no primary clock sources defined (or all are failed), theneach node synchronizes to the nearest secondary clock source. If thereare no primary or secondary clock sources defined (or all are failed),then each node synchronizes to the nearest tertiary clock source. Ifthere are no primary, secondary, or tertiary clock sources defined (orall are failed), then each node synchronizes to its own internal clocksource.

Timing distribution at Layer 2 and higher differs. Clock signals arepassed between nodes as discrete clock signal messages or clock signalpackets. If a node is not the intended recipient of a clock signalmessage, i.e., it is not the clock signal message sink, it propagatesthe clock signal message. Clock nodes (or sources) in this case referonly to nodes that generate or sink clock signal messages; all othernodes between the clock nodes are simply transparent to the timingdistribution process. The network administrator must know a priori whichnodes in the network are clock nodes and which links, trunks orconnection are clocked or pass clock signal messages. For Layer 1 timingdistribution, there may be links that are not configured to pass timingto adjacent nodes. This may happen because timing transfer is either notsupport or enabled on these links. In this case, the root node has toidentify the clocking nodes interconnected by these so-called no-clockedlinks as non-adjacent, that is, they do not exchange timing signals. Inother words, the two physically adjacent clock nodes are logicallynon-adjacent from a timing transfer point of view. Clock nodes or linksthat are intentionally taken out of service by the network administratorare treated the same way by the root node as failure events.

While the invention is described through the above exemplaryembodiments, it will be understood by those of ordinary skill in the artthat modification to and variation of the illustrated embodiments may bemade without departing from the inventive concepts herein disclosed.Moreover, while the preferred embodiments are described in connectionwith various illustrative structures, one skilled in the art willrecognize that the system may be embodied using a variety of specificstructures. Accordingly, the invention should not be viewed as limitedexcept by the scope and spirit of the appended claims.

What is claimed is:
 1. A network comprising a set of nodes, the set ofnodes including a root node, the root node being aware of nodaladjacency and nodal clock quality level for the set of nodes and beingconfigured to set up and maintain a network clock distributioninfrastructure for the set of nodes by: creating an eligibility matrixof elements that do not violate clock sourcing hierarchy constraints;deriving a clock distribution tree topology indicative of clock sourcingfor a plurality of nodes from the eligibility matrix; detecting anetwork topology change; identifying a node affected by the networktopology change; calculating, based at least in-part on the clockdistribution tree topology, a new clock distribution path for theaffected node; and sending an indication of the new clock distributionpath to the affected node; and the affected node being configured: toreceive the indication of the new clock distribution path; and toreceive clock signal packets from other nodes of the network; and toprocess clock signal packets based on the new clock distribution path.2. The network of claim 1, wherein the root node is selected from amonga plurality of candidate Primary Reference Clocks (PRCs).
 3. The networkof claim 1, wherein the root node is configured to calculate the newclock distribution path for the affected node by identifying, from theclock distribution tree topology, a path to the affected node from aclock source of higher or equal stratum relative to the affected node.4. The network of claim 1, wherein the root node is configured to builda spanning tree with paths from the root node to leaf nodes with clocklevels satisfying clock sourcing constraints.
 5. The network of claim 4,wherein the nodes are configured to report indications of linkavailability and clock quality to the root node.
 6. The network of claim5, wherein the root node is configured to prompt communication, byneighboring nodes in the spanning tree, of the indications of linkavailability and clock quality.
 7. The network of claim 1 comprising aplurality of distinct sets of nodes, each distinct set of nodesincluding a respective root node, each respective root node being awareof nodal adjacency and nodal clock quality level for a respectivedistinct set of nodes and being configured to set up and maintain anetwork clock distribution infrastructure for the respective distinctset of nodes by: creating a respective eligibility matrix of elementsthat do not violate clock sourcing hierarchy constraints; deriving arespective clock distribution tree topology indicative of clock sourcingfor a plurality of nodes from the respective eligibility matrix;detecting a network topology change; identifying a node in therespective distinct set of nodes which is affected by the networktopology change; calculating, based at least in-part on the respectiveclock distribution tree topology, a new clock distribution path for theaffected node; and sending an indication of the new clock distributionpath to the affected node.
 8. The network of claim 7, wherein therespective root node for each respective distinct set of nodes isselected from among a plurality of candidate Primary Reference Clocks(PRCs).
 9. The network of claim 7, wherein each respective root node isconfigured to calculate the new clock distribution path for the affectednode by identifying, from the respective clock distribution treetopology, a path to the affected node from a clock source of higher orequal stratum relative to the affected node.
 10. The network of claim 7,wherein each respective root node is configured to build a respectivespanning tree with paths from the respective root node to respectiveleaf nodes with clock levels satisfying clock sourcing constraints. 11.The network of claim 10, wherein the nodes of each distinct set areconfigured to report indications of link availability and clock qualityto the respective root node of each distinct set.
 12. The network ofclaim 11, wherein the respective root node is configured to promptcommunication, by neighboring nodes in the respective spanning tree, ofthe indications of link availability and clock quality.
 13. The networkof claim 1, wherein the root node is configured to prompt the affectednode: to compare the new clock distribution path with a current clockdistribution path; and when the new clock distribution path differs fromthe current clock distribution path, to adopt the new path.
 14. Thenetwork of claim 13, wherein the root node is configured to promptreversion to the current clock distribution path following repair offault resulting in the network topology change.
 15. The network of claim1, wherein the topology change comprises a link failure.
 16. The networkof claim 1, wherein the topology change comprises a node failure. 17.The network of claim 1, wherein the topology change comprises a linkaddition.
 18. The network of claim 1, wherein the topology changecomprises a node addition.
 19. The network of claim 1, wherein thetopology change comprises a clock quality degradation.
 20. The networkof claim 1, wherein the root node is configured to capture clockdistribution topology.
 21. The network of claim 1, wherein the root nodeis configured to capture failure conditions.
 22. The network of claim 1,wherein the root node is configured to capture redundant clock sourceadjacency information.